﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

using Padelcenter.Common;
using Padelcenter.DataAccess;

namespace Padelcenter.BusinessLogic.Get
{
    public class GetDisponibilidad : IBusinessLogic
    {
        public GetDisponibilidad() 
        {
            this.Disponibilidad = new Disponibilidad();
        }

        public void Invoke()
        {
            Disponibilidad_Select oDisponibilidadSelect = new Disponibilidad_Select();
            oDisponibilidadSelect.Disponibilidad = this.Disponibilidad;
            this.Resultset = oDisponibilidadSelect.Get();
        }

        public List<Disponibilidad> DisponibilidadList()
        {
            this.Invoke();

            List<Disponibilidad> listaDisponibilidad = new List<Disponibilidad>();

            DataTable dTable = new DataTable();
            dTable = this.Resultset.Tables[0];

            if (dTable.Rows.Count > 0)
            {
                Disponibilidad oDisponibilidad;
                foreach (DataRow r in dTable.Rows)
                {
                    oDisponibilidad = new Disponibilidad();
                    oDisponibilidad.IdDisponibilidad = Convert.ToInt32(r["idDisponibilidad"]);
                    oDisponibilidad.Descripcion = r["Descripcion"].ToString();
                    oDisponibilidad.Activo = Convert.ToBoolean(r["Activo"]);

                    listaDisponibilidad.Add(oDisponibilidad);
                }
            }

            return listaDisponibilidad;
        }

        private DataSet _resultset;
        private Disponibilidad _disponibilidad;

        public Disponibilidad Disponibilidad
        {
            get { return _disponibilidad; }
            set { _disponibilidad = value; }
        }

        public DataSet Resultset
        {
            get { return _resultset; }
            set { _resultset = value; }
        }
    }

    public class GetDisponibilidadDescripcion : IBusinessLogic
    {
        public GetDisponibilidadDescripcion() { }

        public void Invoke()
        {
            DisponibilidadDescripcion_Select oDisponibilidadDescripcionSelect = new DisponibilidadDescripcion_Select();
            oDisponibilidadDescripcionSelect.DisponibilidadDescripcion = this.DisponibilidadDescripcion;
            this.Resultset = oDisponibilidadDescripcionSelect.Get();
        }

        public List<DisponibilidadDescripcion> DisponibilidadDescripcionList()
        {
            this.Invoke();

            List<DisponibilidadDescripcion> listaDisponibilidadDescripcion = new List<DisponibilidadDescripcion>();

            DataTable dTable = new DataTable();
            dTable = this.Resultset.Tables[0];

            if (dTable.Rows.Count > 0)
            {
                DisponibilidadDescripcion oDisponibilidadDescripcion;
                foreach (DataRow r in dTable.Rows)
                {
                    oDisponibilidadDescripcion = new DisponibilidadDescripcion();

                    Disponibilidad oDisponibilidad = new Disponibilidad();
                    oDisponibilidad.IdDisponibilidad = Convert.ToInt32(r["idDisponibilidad"]);

                    GetDisponibilidad oGetDisponibilidad = new GetDisponibilidad();
                    oGetDisponibilidad.Disponibilidad = oDisponibilidad;

                    oDisponibilidadDescripcion.Disponibilidad = oGetDisponibilidad.DisponibilidadList()[0];

                    oDisponibilidadDescripcion.Descripcion = r["Descripcion"].ToString();

                    Idioma oIdioma = new Idioma();
                    oIdioma.IdIdioma = Convert.ToInt32(r["idIdioma"]);
                    GetIdioma oGetIdioma = new GetIdioma();
                    oGetIdioma.Idioma = oIdioma;

                    oDisponibilidadDescripcion.Idioma = oGetIdioma.IdiomaList()[0];

                    listaDisponibilidadDescripcion.Add(oDisponibilidadDescripcion);
                }
            }

            return listaDisponibilidadDescripcion;
        }

        private DataSet _resultset;
        private DisponibilidadDescripcion _disponibilidadDescripcion;

        public DisponibilidadDescripcion DisponibilidadDescripcion
        {
            get { return _disponibilidadDescripcion; }
            set { _disponibilidadDescripcion = value; }
        }

        public DataSet Resultset
        {
            get { return _resultset; }
            set { _resultset = value; }
        }
    }
}
